Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
turtlebotのナビゲーションスタックの設定
Description: ロボットのナビゲーション構成についてのはじめの一歩, および, その他のもっと包括的なチュートリアルへのリファレンスTutorial Level: BEGINNER
Next Tutorial: Build a map with SLAM
Contents
このチュートリアルは敢えてTurtleBotのナビゲーションを厳密にチューニングするための包括的な手引きとはならないようになっています. それについては, navigation tutorialsが十分な役割を担っています. ここでは, TurtleBotユーザーにしばしば質問される, いくつかの有用なハウツーと技について説明します. ユーザーの時間を節約し, 膨大な既存のドキュメントに埋もれる必要から解放することを狙いとしています.
キーとなるファイル
TurtleBotのナビゲーションは(他のほとんどのROSベースのロボットと同じように), launchファイルとyamlファイルの組み合わせにより定義されています. 両方とも turtlebot_navigationのlaunchディレクトリとparamディレクトリにそれぞれ含まれています.
Move base
TurtleBotのナビゲーション動作は, グローバルおよびローカルのコストマップを保持するmove_baseにより生成されるため, グローバルおよびローカルのプランを作成することができます. その挙動は, コストマップ用の三種類のものとプランナー用のbase_local_lanner_param.yamlという, param/move_baseのyamlファイルに明記されています. costmap_2dの構成設定は幾分か癖があり, ほとんどの場合において, CPUの使用状況とパフォーマンスの間のニーズのバランスに左右されるため, ここでは述べません.
Planner
- 速度リミットの変更:
max_vel_x: 最大速度(巡航速度); TurtleBot 1では0.5, TurtleBot 2では0.7が絶対値のリミットです
- min_vel_x: 最小速度; ロボットが最小速度において摩擦抵抗を超えられないほど積載荷重が大きい時, 増加させる必要があるでしょう
max_rotational_vel: 最大角速度(旋回速度); TurtleBot2では3.14 (TurtleBot1は未確認; "誰か記載できる人はいるでしょうか?")
- min_in_place_rotational_vel: 最小速度と同様
ゴールの許容誤差. これら二つのパラメータはゴールに到達した時のTurtleBotの正確さ加減を許容します. 注意しましょう: 極端に小さい値はゴールの到着判定を受けることなく, ゴールの周りを徘徊させることになってしまいます!
- yaw_goal_tolerance
- xy_goal_tolerance
コストコンピューティング・バイアス. これら三つのパラーメタはTurtleBotがグローバルプランに従う時の挙動の方向性を定義する.
- path_distance_bias: プランにより接近した状態でロボットを追従させる時, 増加
- goal_distance_bias: ロボットの軌道をよりスムーズで効率が良いものにする時, 増加
- occdist_scale: ロボットを障害物に対してより敏感に反応させたい時, 増加
Amcl (位置推定)
TurtleBotの位置推定はamclにより提供されています. launch/includes/_amcl.launchファイルのパラメータを修正することにより, このアルゴリズムは調整可能です. しかし, これは基本的事項ではないため, このチュートリアルの範疇から外れるものです.
Gmapping (地図作成)
TurtleBotの地図はgmappingにより作成されています. launch/includes/_gmapping.launchファイルのパラメータを修正することにより, このアルゴリズムは調整可能です. しかし, これらもまた基本的事項ではなく, このチュートリアルの範疇から外れる話題となります.